package com.zb.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.zb.result.PageUtil;
import com.zb.vo.MultiAddress;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * @Author WEN
 * @Date 2023/10/7 0007
 **/
@Data
@ApiModel("工单列表筛选条件对象")
public class OrderListSelectVo extends PageUtil {
    @ApiModelProperty(value = "时间字段类型：1-报单日期，2-完工日期，3-结算日期", example = "1")
    private Integer dateFieldType;

    @ApiModelProperty(value = "时间类型：1-时间区间，2-今天，3-本周，4-本月，5-过去三个月")
    private Integer dateType;

    @ApiModelProperty(value = "报单开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date orderStartTime;

    @ApiModelProperty(value = "报单结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date orderEndTime;

    @ApiModelProperty(value = "工单模块ID")
    private List<Long> moduleIds;

    @ApiModelProperty(value = "工单状态：1-待派单，2-待服务商确认，3-处理中，4-已完成，5-已作废，1001-结单审核")
    private Integer status;

    @ApiModelProperty(value = "工单状态：1-待派单，2-待服务商确认，3-处理中，4-已完成，5-已作废，1001-结单审核")
    private List<Integer> statues;

    @ApiModelProperty(value = "商家id")
    private List<Long> factoryIds;

    @ApiModelProperty(value = "子状态：" +
            "待服务商处理：1-服务商未接单，2-服务商未派单，3-工程师未接单；" +
            "处理中：1-未拨打电话，2-未预约，3-未签到，4-费用待审核，5-配件待审核")
    private Integer childStatus;

    @ApiModelProperty(value = "商品搜索：品牌/产品名称/产品型号")
    private String goodsSearch;

    @ApiModelProperty(value = "等级ID")
    private List<Long> workLevelIds;

    @ApiModelProperty(value = "网点类型：1-已派单，0-未派单，传空值则查询所有")
    private Integer networkType;

    @ApiModelProperty(value = "服务区域ID")
    private List<Long> networkIds;

    @ApiModelProperty(value = "服务时长类型：1-小时，2-天", example = "1")
    private Integer serviceTimeType;

    @ApiModelProperty(value = "最小服务时长值")
    private Integer minServiceTime;

    @ApiModelProperty(value = "最大服务时长值")
    private Integer maxServiceTime;

    @ApiModelProperty(value = "工单来源")
    private List<Integer> sources;

    @ApiModelProperty(value = "客服类型：1-已分配客服，0-未分配客服，传空值则查询所有")
    private Integer empType;

    @ApiModelProperty(value = "客服ID")
    private List<Long> empIds;

    @ApiModelProperty(value = "工单单号")
    private String orderNo;

    @ApiModelProperty(value = "工单节点时效类型：0-未超时工单，1-已超时工单")
    private Integer orderNodeTimeoutType;

    @ApiModelProperty(value = "工单客户搜索关键词：客户名称/客户手机号/客户地址")
    private String orderUserSearch;

    @ApiModelProperty(value = "工单字段ID")
    private Long fieldId;

    @ApiModelProperty(value = "工单字段搜索关键词")
    private String fieldSearch;

    @ApiModelProperty(value = "排序", hidden = true)
    private String orderBy;

    @ApiModelProperty(value = "省")
    private List<String> provinces;

    @ApiModelProperty(value = "市")
    private List<String> citys;

    @ApiModelProperty(value = "镇区")
    private List<String> areas;
    /**
     * 新增省，市，镇区三个字段
     */
    @ApiModelProperty(value = "省")
    private String province;
    @ApiModelProperty(value = "市")
    private String city;
    @ApiModelProperty(value = "镇区")
    private String area;
    @ApiModelProperty(value = "地址集合")
    private List<MultiAddress> addresses;
    @ApiModelProperty(value = "是否暂挂")
    private Integer isPause;
    @ApiModelProperty(value = "是否待核实：为1是待核实")
    private Integer isHs;

    @ApiModelProperty(value = "是否待核销：为1是待核销")
    private Integer isHx;

    @ApiModelProperty(value="状态列表")
    private List<Integer> statusList;
}
